// pages/reg/reg.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    phone: '',
    code: '',
    password: '',
    confirmPassword: '',
    countdown: 0,
    agreeTerms: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  // 输入手机号
  onPhoneInput(e) {
    this.setData({
      phone: e.detail.value
    });
  },

  // 输入验证码
  onCodeInput(e) {
    this.setData({
      code: e.detail.value
    });
  },

  // 输入密码
  onPasswordInput(e) {
    this.setData({
      password: e.detail.value
    });
  },

  // 输入确认密码
  onConfirmPasswordInput(e) {
    this.setData({
      confirmPassword: e.detail.value
    });
  },

  // 发送验证码
  sendCode() {
    const { phone, countdown } = this.data;
    
    if (countdown > 0) return;
    
    if (!phone) {
      wx.showToast({
        title: '请输入手机号',
        icon: 'none'
      });
      return;
    }

    if (!/^1[3-9]\d{9}$/.test(phone)) {
      wx.showToast({
        title: '请输入正确的手机号',
        icon: 'none'
      });
      return;
    }

    // TODO: 调用发送验证码接口
    console.log('发送验证码到:', phone);
    
    // 模拟发送成功
    wx.showLoading({
      title: '发送中...'
    });
    
    setTimeout(() => {
      wx.hideLoading();
      wx.showToast({
        title: '验证码已发送',
        icon: 'success'
      });
      
      // 开始倒计时
      this.setData({ countdown: 60 });
      this.startCountdown();
    }, 1000);
  },

  // 开始倒计时
  startCountdown() {
    const timer = setInterval(() => {
      const countdown = this.data.countdown - 1;
      if (countdown <= 0) {
        clearInterval(timer);
        this.setData({ countdown: 0 });
      } else {
        this.setData({ countdown });
      }
    }, 1000);
  },

  // 切换协议同意
  toggleAgreement() {
    this.setData({
      agreeTerms: !this.data.agreeTerms
    });
  },

  // 处理注册
  handleRegister() {
    const { phone, code, password, confirmPassword, agreeTerms } = this.data;
    
    if (!phone || !code || !password || !confirmPassword) {
      wx.showToast({
        title: '请完善注册信息',
        icon: 'none'
      });
      return;
    }

    if (!/^1[3-9]\d{9}$/.test(phone)) {
      wx.showToast({
        title: '请输入正确的手机号',
        icon: 'none'
      });
      return;
    }

    if (password.length < 6 || password.length > 20) {
      wx.showToast({
        title: '密码长度应为6-20位',
        icon: 'none'
      });
      return;
    }

    if (password !== confirmPassword) {
      wx.showToast({
        title: '两次输入的密码不一致',
        icon: 'none'
      });
      return;
    }

    if (!agreeTerms) {
      wx.showToast({
        title: '请同意用户协议和隐私政策',
        icon: 'none'
      });
      return;
    }

    // TODO: 调用注册接口
    console.log('注册信息:', { phone, code, password });
    
    // 模拟注册成功
    wx.showLoading({
      title: '注册中...'
    });
    
    setTimeout(() => {
      wx.hideLoading();
      wx.showToast({
        title: '注册成功',
        icon: 'success',
        complete: () => {
          wx.navigateBack();
        }
      });
    }, 1500);
  },

  // 显示用户协议
  showTerms() {
    wx.navigateTo({
      url: '/pages/terms/terms'
    });
  },

  // 显示隐私政策
  showPrivacy() {
    wx.navigateTo({
      url: '/pages/privacy/privacy'
    });
  },

  // 去登录
  goToLogin() {
    wx.navigateBack();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})